1. Field of the Invention
The present invention relates generally to the field of application development, and more particularly to end user programming of television multimedia applications.
2. Description of the Related Art
Television multimedia devices, such as smart TVs, multimedia displays, tablets, and other multimedia display devices have become widespread and important to the daily activities of many consumers and businesses. Traditionally, these types of devices have primarily served as multimedia devices. Recently, however, consumers are increasingly relying upon these devices as an integral tool in the performance of a wide-range of personal and work-related tasks. In response, television multimedia devices have evolved into complex computing devices with equally complex computer hardware and software.
Smart TVs, and other similar television multimedia devices, are used in various forms of communication (i.e., video conferences, e-mail), and they provide other various functionalities, including accessing and displaying websites, sending and receiving e-mails, taking and displaying photographs and videos, playing music and other forms of audio, etc. These, and numerous other functionalities, are generally performed by software components that are built in to the device's operating system, native applications, or separate applications that run on top of the television multimedia device. Recently, development and use of applications that operate inside of television set-top boxes have become prolific, and thousands of apps now exist across a wide array of multimedia devices.
The goal of human-computer interaction is evolving from making systems easy to use, to making systems that are easy to develop. Developers have spent an enormous amount of time and effort delivering new functionality to consumers that promised to give them greater flexibility and control over their television multimedia device's vast capabilities. Applications installed on the television multimedia device have become the vessel that delivers this functionality to the end user. Developing new or modified applications that effectively support end users' goals has been a task reserved for application developers with considerable expertise in programming that cannot be expected from most people. Therefore, decisions regarding the needs and preferences of end users employing available features lie with the developer. Given that individual end user requirements are diversified, changing, and at times hard to identify precisely, working through conventional development cycles with application developers to keep pace with evolving contexts proves slow, time-consuming, and expensive.
Flexibility really means that end users themselves should be able to develop, customize, and continuously adapt applications to suit individualized needs. Therefore, means to empower end users to realize this type of flexibility, at a level of complexity appropriate for their individual skills and situations, not only makes better use of all available features on a television multimedia device, but also claims for all end users an ability to control how to utilize the wide array of functions on their television multimedia devices.
Business Process Model and Notation (BPMN) workflow technology is a standard for business process modeling that provides graphical notation for specifying business processes in diagram based on flowcharting techniques. A workflow is a depiction of a sequence of operations declared as work of a simple or complex mechanism or of machines. A workflow application is a software application which automates, at least to some degree, a process or processes. The processes are usually business-related, but it may be any process that requires a series of steps that can be automated via software. The BPMN specification provides a mapping between the graphics of the notation and the underlying constructs of execution languages, particularly Business Process Execution Language (BPEL). Business Process Modeling (BPM) suite software provides programming interfaces (e.g., application program interfaces) that allow applications to be built to leverage the BPMN engine.